UFW ile Ubuntu Güvenlik Duvarı Kurulumu
Bu rehberde ne öğreneceksiniz?
Bu rehber, Ubuntu sunucunuzda UFW kullanarak güvenlik duvarı kurmayı, SSH erişimini güvenli şekilde açmayı, port/IP yönetimi yapmayı ve sunucuyu en az ayrıcalık prensibine göre korumayı öğretir.
1. UFW Nedir?
UFW (Uncomplicated Firewall), iptables'ın karmaşık yapılarını basit komutlarla yönetmenizi sağlar. Ubuntu'nun varsayılan güvenlik duvarı aracıdır.
2. UFW Kurulumu ve Yapılandırma
Adım 1 — IPv6’nın Açık Olduğunu Kontrol Et
sudo nano /etc/default/ufw
Açıklama: UFW'nin IPv4 ve IPv6 için eşit şekilde kural uygulaması için bu dosyayı düzenleriz.
Kontrol edilmesi gereken satır:
IPV6=yes
Açıklama: Eğer "no" ise IPv6 trafiği korunmaz → güvenlik açığı oluşur.
Adım 2 — Varsayılan Politikaları Belirleyin
sudo ufw default deny incoming
Açıklama: Sunucuya dışarıdan gelen tüm bağlantıları varsayılan olarak engeller. Bu en güvenli başlangıçtır.
sudo ufw default allow outgoing
Açıklama: Sunucunun dışarıya (örneğin güncelleme, API istekleri) bağlantı kurmasına izin verir.
Adım 3 — SSH Bağlantısına İzin Verin (Zorunlu)
sudo ufw allow ssh
Açıklama: SSH (port 22) bağlantısına izin vererek sunucudan kilitlenmenizi engeller.
sudo ufw allow 22
Açıklama: Servis ismi yerine direkt port belirlemenin eşdeğeridir.
sudo ufw limit ssh,
Açıklama: Bir IP kısa sürede çok fazla SSH denemesi yaparsa geçici olarak engellenir. Brute-force saldırılarına karşı korur.
Adım 4 — UFW’yi Etkinleştirin
sudo ufw show added
Açıklama: Firewall aktif olmadan önce hangi kuralların ekli olduğunu gösterir.
sudo ufw enable
Açıklama: Güvenlik duvarını aktif eder. Sistemde otomatik olarak her açılışta devreye girer.
sudo ufw status verbose
Açıklama: Aktif kuralları detaylı şekilde listeler.
Adım 5 — Diğer Gerekli Bağlantılara İzin Verin
HTTP (80):
sudo ufw allow http
Açıklama: Web sitenizin dışarıdan erişilebilmesini sağlar.
HTTPS (443):
sudo ufw allow https
Açıklama: SSL/TLS ile güvenli web trafiğine izin verir.
MySQL (3306):
sudo ufw allow 3306
Açıklama: Veritabanı bağlantılarını açar (genelde sadece belirli IP'ye açılması önerilir).
Belirli IP’den SSH izni:
sudo ufw allow from 203.0.113.10 to any port 22
Açıklama: SSH erişimini sadece bu IP’ye izin verecek şekilde sınırlar. En güvenli yöntemlerden biri.
Port aralığına izin verme:
sudo ufw allow 6000:6007/tcp
Açıklama: 6000–6007 arasındaki tüm TCP portlarını aynı anda açar.
Ağ arayüzüne özel kural:
sudo ufw allow in on eth0 to any port 80
Açıklama: HTTP trafiğini sadece belirtilen network interface üzerinden kabul eder.
Adım 6 — Bağlantıları Engelleyin
Belirli IP engelleme:
sudo ufw deny from 203.0.113.4
Açıklama: Bu IP adresinden gelen tüm bağlantıları tamamen reddeder.
SMTP çıkış engeli:
sudo ufw deny out 25
Açıklama: Sunucunun 25 numaralı port üzerinden dışarıya mail göndermesini engeller. Spam tetiklenmelerini önler.
Adım 7 — Kuralları Silme
Kural listesini numarayla göster:
sudo ufw status numbered
Açıklama: Her kuralı numaralı olarak listeler → silmeyi kolaylaştırır.
Numara ile silme:
sudo ufw delete 2
Açıklama: Listedeki 2 numaralı kuralı kaldırır.
İsimle silme:
sudo ufw delete allow http
Açıklama: HTTP izin kuralını (IPv4 + IPv6 birlikte) siler.
Adım 8 — UFW Durumunu Kontrol Etme
sudo ufw status verbose
Açıklama: UFW’nin aktif olup olmadığını ve tüm kuralları detaylı gösterir.
Adım 9 — Güvenlik Duvarını Devre Dışı Bırakma / Resetleme
UFW'yi kapatma:
sudo ufw disable
Açıklama: Güvenlik duvarını tamamen durdurur. Kurallar pasif hâle gelir.
Sıfırlama:
sudo ufw reset
Açıklama: Tüm kuralları siler ve UFW’yi ilk günkü hâline döndürür.
3. Güvenlik İçin En İyi Uygulamalar
1. En Az Ayrıcalık İlkesini Uygulayın
Sadece gerektiği kadar port açın.
sudo ufw allow 80
sudo ufw allow 443
Açıklama: Web sunucusu için gereken 2 temel portu açar.
2. Logları Açın ve İzleyin
sudo ufw logging on
Açıklama: UFW’nin engellediği ve izin verdiği trafiği kaydetmesini sağlar.
Log dosyası:
/var/log/ufw.log
3. Fail2Ban Kullanarak Otomatik Saldırı Engelleme
Fail2Ban, şüpheli IP'leri otomatik olarak UFW üzerinden engeller. SSH brute-force saldırılarına karşı çok güçlü bir koruma sağlar.
4. IPv6 Kurallarını Kontrol Edin
sudo grep IPV6 /etc/default/ufw
Açıklama: UFW’nin IPv6 için kuralları aktif olarak yazıp yazmadığını kontrol eder.
4. SSS – Sıkça Sorulan Sorular
1. UFW iptables'tan daha mı iyi?
Kullanımı çok daha kolaydır; iptables’ın karmaşıklığını gizler.
2. Site açılmıyorsa neden olabilir?
HTTP (80) veya HTTPS (443) portu açılmamıştır.
3. SSH portunu değiştirdiysem?
Örnek:
sudo ufw allow 2222/tcp
4. Kuralları uygulamadan önce test edebilir miyim?
sudo ufw --dry-run enable
- UFW hangi protokolleri destekler?
TCP, UDP ve belirtilmediğinde her iki protokol.
Sonuç
Bu rehber ile Ubuntu sunucunuzda UFW’yi güvenli, doğru ve kontrollü şekilde yapılandırabilir; port ve IP yönetimini bilinçli şekilde yapabilirsiniz. Doğru yapılandırılmış bir UFW, sunucuyu gereksiz trafiğe karşı ciddi ölçüde güçlendirir.